﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;

//class A
//{
//public:
//	A()
//	{
//		cout << "A()" << endl;
//	}
//	~A()
//	{
//		cout << "A()" << endl;
//	}
//private:
//	int _data;
//};
//int main()
//{
//	A* p = new A[3];
//	delete p;
//	return 0;
//}

//class A
//{
//public:
//	~A()
//	{
//		cout << "~A()" << endl;
//	}
//};
//
//class B
//{
//public:
//	B()
//	{
//
//	}
//	~B()
//	{
//		cout << "~B()" << endl;
//	}
//};
//
//class C
//{
//public:
//	~C()
//	{
//		cout << "~C()" << endl;
//	}
//};
//
//class D
//{
//public:
//	~D()
//	{
//		cout << "~D()" << endl;
//	}
//};
//
//
//C c;
//void main()
//{
//	A* pa = new A();
//
//	B b;
//
//	static D d;
//
//	delete pa;
//}

//int globalVar = 1;
//
//static int staticGlobalVar = 1;
//
//void Test()
//{
//	static int staticVar = 1;
//
//	int localVar = 1;
//
//	int num1[10] = { 1, 2, 3, 4 };
//
//	char char2[] = "abcd";
//
//	const char* pChar3 = "abcd";
//
//	int* ptr1 = (int*)malloc(sizeof(int) * 4);
//
//	int* ptr2 = (int*)calloc(4, sizeof(int));
//
//	int* ptr3 = (int*)realloc(ptr2, sizeof(int) * 4);
//
//	free(ptr1);
//
//	free(ptr3);
//}

template